import { ecs } from 'db://app-game/libs/ecs/ECS';
import { TableMap } from '../../../../table/TableMap';

/** 地图基础组件 */
@ecs.register('LevelMapModel')
export class LevelMapModelComp extends ecs.Comp {
  table: TableMap = new TableMap();
  _id: number = -1;
  /** 地图编号 */
  get id(): number {
    return this._id;
  }
  set id(value: number) {
    this._id = value;
    this.table.init(value);
  }

  /** 分组地图宽 */
  get chunkMapWidth(): number {
    return 1000;
  }
  /** 分组地图高 */
  get chunkMapHeight(): number {
    return 1000;
  }
  /** 瓷砖宽 */
  get tileWidth(): number {
    return 20;
  }
  /** 瓷砖高 */
  get tileHeight(): number {
    return 20;
  }
  /** 瓷砖列数 */
  get tileColNumber(): number {
    return 50;
  }
  /** 瓷砖行数 */
  get tileRowNumber(): number {
    return 50;
  }

  /** 最大行数 */
  get maxRow(): number {
    return this.table.mapTable.length - 1;
  }
  /** 最大列数 */
  get maxCol() {
    return this.table.mapTable[0].length - 1;
  }

  /** 初始行 */
  get initRow(): number {
    return this.table.initRow;
  }

  /** 初始列 */
  get initCol(): number {
    return this.table.initCol;
  }

  /** 地图文件名 */
  get mapFileName(): string {
    return this.table.mapFileName;
  }
  /** 地图表单 */
  get mapTable(): string[][] {
    return this.table.mapTable;
  }

  reset(entity: ecs.Entity): void {
    this._id = -1;
  }
}
